#include "OpticalCar_hardware.h"



// Enable Colocks
static void Car_RCC_Config() {
    // TIM3
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

    // LED Power, PWM A, PWM B
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
}


static void Car_LED_GPIO_Config() {
    GPIO_InitTypeDef st_gpio_init;

    // GPIO B for LED Power
    st_gpio_init.GPIO_Pin = PIN_LED_PWR;
    st_gpio_init.GPIO_Mode = GPIO_Mode_Out_OD;
    st_gpio_init.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(PORT_LED_PWR, &st_gpio_init);
}


void Car_HardwareInit(void) {
    // To Use PB4, PB5 as GPIO
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    //GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
    
    Car_RCC_Config();
    Car_LED_GPIO_Config();
}

